The Short Message Service (SMS) is a teleservice which enables a user to send messages to and receive text messages from other users of a communications (cellular) network. The SMS function attempts to deliver a message to a mobile station whenever the mobile station is registered to the network, even when the terminal is engaged in a voice or data call. The mobile station may also roam throughout the network and still be capable of sending and receiving messages. A mobile station configured for SMS provides methods for the user to receive, read, write/edit, clear, send, and save messages.
The network stores messages in at least one SMS Center (SMSC), and Mobile Terminated (MT) messages are sent to the terminal from the SMSC. Various SMS protocol layers receive the messages and check their contents. If the contents are valid, and assuming that there is room for incoming text messages in the memory of the mobile station, the message is received and stored. Otherwise, the message is rejected.
Reference can be had to the TIA Interim Standards IS-136 and IS-137, and also to a document entitled "TDMA Forum, Implementation Guide: Short Message Terminals Compliant With IS-136 and IS-137" (Ed. D. Holmes, vers. 7.0, Apr. 20, 1995). These documents specify a type of SMS and the various system and terminal level protocols required to provide SMS in a cellular telecommunications system.
In current telecommunications systems SMS messages may be sent from an application resident in a mobile station, or from a PC application that is connected by a LAN to the internet. A SMSC (Short Message Service Center) receives the SMS message from the cellular network, or from an internet gateway, respectively. The SMSC then immediately directs the message to the mobile station, or after it has detected that the mobile station has locked onto a channel and entered an idle state.
A problem exists with this current approach, in that there may exist a set of PC applications that are designed to communicate with a user's own mobile station or other mobile stations. That is, applications currently exist or will exist that require a more deterministic delivery of information when using the internet.
A further problem relates to the running of real-time applications from easily disconnected PCs, such as laptops, that may be occasionally disconnected from the normal host network. Information may need to be exchanged in a timely manner in either direction between the mobile station and the PC, yet the PC may be disconnected or the network may be too slow in delivering the data. In this case those applications which need to deliver or receive data messages, regardless of connection state and other circumstances, will not perform correctly.
Furthermore, a number of different formats have been specified for encoding information to enable applications to communicate with one another. One application must be capable of interpreting information that has been generated and encoded by another application.
Unfortunately, the formats that have been specified thus far do not meet the high requirements imposed by a real-time SMS application messaging system. Typically the information is encoded in binary form which is not interpretable by humans, and/or the encoded information is too lengthy to be transmitted as a length-constrained SMS message, and/or the format is too specific to be used by a wide range of different applications.
Ideally, a flexible yet well defined generic format and message structure is needed which fulfills the following criteria.
First, the encoded information should be readable by a human (i.e., no binary encoding), should be easy for a user to enter, should be capable of being transmitted as a SMS message, should be as short as possible (preferably not exceeding the length of one SMS message), should consist only of characters which are supported by the SMS character set, and should be designed so that it can be stored without information conversion.
Second, the message format should provide a mechanism which enables the encoded information to be divided and reassembled (in case the information exceeds the length of one SMS message), should allow a capability to define commands, and should not restrict its usage to one or more specific applications so as to preclude its use with future applications. The message format should also be capable of holding one or more data values and should not restrict the order of data values, should allow parts of data values to be omitted, should provide an error handling capability, and should be sufficiently specified so that applications can represent any received encoded information in a user-friendly manner, even though a particular message was not intended for the user.
Also, most message formats are specified for "one-way" communication, meaning that information is sent from a sender to a receiver. They do not take into account possible responses, results of queries, or error handling on a high level.